home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume8 / pcmail / part01 next >
Encoding:
Text File  |  1989-11-03  |  47.1 KB  |  1,125 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v08i109: pcmail part 01 of 08
  3. From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  4. Reply-To: markl@oracle.com (Croaker the Physician)
  5.  
  6. Posting-number: Volume 8, Issue 109
  7. Submitted-by: markl@oracle.com (Croaker the Physician)
  8. Archive-name: pcmail/part01
  9.  
  10. [Administrivia:  The monthly welcome/index posting will be delayed while I
  11. attempt to determine the fate of certain archive sites which seem not to be
  12. in the archiving business any more.  ++bsa]
  13.  
  14. [This package is an ELisp code library for GNU Emacs.  Normally, these packages
  15. are made available only via anonymous FTP from GNU archives; however, the
  16. submitter has indicated many requests for this package from people who do not
  17. have FTP access.  ++bsa]
  18.  
  19. #--------------------------------CUT HERE-------------------------------------
  20. #! /bin/sh
  21. #
  22. # This is a shell archive.  Save this into a file, edit it
  23. # and delete all lines above this comment.  Then give this
  24. # file to sh by executing the command "sh file".  The files
  25. # will be extracted into the current directory owned by
  26. # you with default permissions.
  27. #
  28. # The files contained herein are:
  29. #
  30. # -rw-rw-r--  1 markl        6611 Oct 30 11:40 README
  31. # -rw-rw-r--  1 markl       38628 Nov  2 07:53 mailhelpaa
  32. #
  33. echo 'x - README'
  34. if test -f README; then echo 'shar: not overwriting README'; else
  35. sed 's/^X//' << '________This_Is_The_END________' > README
  36. XInstallation and unpacking instructions, Pcmail version 4.0
  37. X
  38. XIf you are reading this, you should have already unpacked the
  39. Xdistribution shell archives.  You should now have the following files:
  40. X
  41. XMail reader documentation:
  42. X
  43. X    mailhelpaa    documentation, part 1
  44. X    mailhelpab    documentation, part 2
  45. X    mailhelpac    documentation, part 3
  46. X
  47. XMail reader implementation:
  48. X
  49. X    pcmail.el     variable declarations, mail reader entry
  50. X            point, miscellaneous functions
  51. X        pcmailattr.el   attribute-manipulating commands and their
  52. X            support functions
  53. X    pcmailbabyl.el  commands and support functions which know about
  54. X            Babyl format.  All other routines use entry
  55. X            points in this file and themselves know
  56. X            nothing about Babyl format. 
  57. X    pcmaildate.el    date handling
  58. X    pcmaildrop.el    scanning and loading of mail drop files.
  59. X            These functions are generic; specific mail
  60. X            drop processing functions are all in
  61. X            pcmailsysdep.el 
  62. X        pcmailedit.el    mail message editing commands
  63. X    pcmailfolder.el    folder management
  64. X        pcmaillist.el   folder-list management
  65. X        pcmailmail.el   composition of new messages, replies, and
  66. X            forwarded messages. 
  67. X        pcmailmove.el    movement within a folder
  68. X        pcmailout.el    output of messages to files, printers, and
  69. X            other folders
  70. X        pcmailsub.el    message filtering and subsetting
  71. X    pcmailsum.el    message summary management
  72. X    pcmailsysdep.el all system-dependent routines, including
  73. X            definition of all mail drop import and
  74. X            message conversion routines, print functions,
  75. X            and message transmission (VMS only).  In
  76. X            theory, new systems can be ported to simply by
  77. X            following the UNIX and VMS examples in this
  78. X            file. 
  79. X
  80. XMail reader support programs:
  81. X
  82. X       vms-movemail.com   required for VMS users only.  Provides an
  83. X              (admittedly crufty, although usable)
  84. X              interface between the VAXMAIL system and the
  85. X              mail reader.  Moves new mail from a MAIL.MAI
  86. X              newmail folder to the mail reader's primary
  87. X              folder.  The script works fine on our local
  88. X              VMS 5.1, but I would strongly suggest testing it
  89. X              on your system before relying on it, since it
  90. X              does muck with your MAIL.MAI file and I don't
  91. X              know VMS all that well (nor do I have a desire to).
  92. X
  93. X       vms-doprint.com      required for VMS users only.  Sends messages
  94. X              to a named printer.
  95. X
  96. X       nntp_slave.c
  97. X       nntp.c
  98. X       nntp.h          source code for a simple NNTP client which
  99. X              is driven by a Pcmail NNTP mail drop
  100. X              processor.  The program requires a Berkeley
  101. X              socket library in order to run.
  102. X
  103. X       mh-to-pcmail-export  a simple shell script, driven by the Pcmail
  104. X                MH mail drop processor, which accumulates
  105. X                message files from an MH folder directory
  106. X                into a single file to be imported into a
  107. X                Pcmail folder.
  108. X
  109. X
  110. X
  111. XInstallation Instructions:
  112. X
  113. XThese instructions are a subset of those in the supplied documentation.
  114. X
  115. XFirst, combine the documentation files mailhelpaa, mailhelpab, and
  116. Xmailhelpac into a single file.
  117. X
  118. XNext, copy all Emacs-Lisp files (*.el) into a directory where to a
  119. Xdirectory where the GNU-Emacs load commands will find the files.
  120. XThose files should then be byte-compiled.  The Emacs-Lisp code must be
  121. Xeither manually loaded or autoloaded before the mail reader can be
  122. Xused.  Autoloading of the mail reader is performed automatically only
  123. Xif the local GNU-Emacs's loaddefs.el file is set up to do so.  If
  124. Xloaddefs.el has not been configured to autoload the mail reader, the
  125. Xautoload request can be performed in a GNU-Emacs initialization file
  126. X(e.g. ".emacs") using the Emacs-Lisp autoload form:
  127. X
  128. X    (autoload 'pcmail "pcmail" "pcmail mail reader" t)
  129. X
  130. XThe following installation procedures are only necessary if you are
  131. X(1) running the mail reader on a VMS system, (2) you wish to use the
  132. XNNTP mail-drop capability, or (3) you wish to use the MH import
  133. Xcapability.  If you do not need a capability, you can ignore the
  134. Xappropriate installation information
  135. X
  136. XInstalling VMS DCL Scripts
  137. X
  138. XIn order to use the mail reader on VMS, you must install the scripts
  139. X"vms-movemail.com" and "vms-movemail.com" in the GNU-Emacs "etc"
  140. Xdirectory.
  141. X
  142. XA note about the VMS mail drop importer: the vms-movemail.com DCL
  143. Xscript which Pcmail calls to perform the mail transfer when new mail
  144. Xarrives works perfectly well on our local VMS 5.1.  I nonetheless
  145. Xstrongly suggest testing it on your system before relying on it, since
  146. X(1) it does muck with your MAIL.MAI file, (2) I don't know VMS all
  147. Xthat well (nor do I have a desire to), and (3) I don't want to be
  148. Xresponsible for people trashing their mail.
  149. X
  150. X
  151. XInstalling nntp_slave
  152. X
  153. XThe nntp_slave program is a simple (very simple) NNTP client that
  154. Xtakes a newsgroup name and places messages from that newsgroup into a
  155. Xfile.  It uses a control file to keep track of which messages it has
  156. Xretrieved; if the control file doesn't exist, it retrieves the latest
  157. X20 messages from the specified newsgroup.  This program requires the
  158. XBerkeley socket library.
  159. X
  160. XInstallation of the program is simple.  Compile nntp.c and
  161. Xnntp_slave.c, then link both together into an executable called
  162. X"nntp_slave":
  163. X
  164. X    cc -o nntp_slave nntp_slave.c nntp.c
  165. X
  166. XPlace the executable in the GNU-Emacs "etc" directory.
  167. X
  168. XInstalling mh-to-pcmail-export
  169. X
  170. XThe mh-to-pcmail-export program is a simple shell script which takes
  171. Xan MH folder name, goes to that directory, and accumulates all message
  172. Xfiles into a single file with separator text between messages.  It is
  173. Xused by the mail reader when importing an MH folder into a Pcmail
  174. Xfolder. 
  175. X
  176. XInstallation consists of moving the shell script into the GNU-Emacs
  177. X"etc" directory and changing the file's mode so that it is executable:
  178. X
  179. X    chmod +x mh-to-pcmail-export
  180. X
  181. XAt this point, you should be ready to start reading your mail.  Refer
  182. Xto the printed documentation (mailhelp) as well as the on-line
  183. Xdocumentation for full details on features and functionality.
  184. X
  185. XIf you have questions or comments, mail them to:
  186. X
  187. X  internet: markl@oracle.com or markl%oracle.com@apple.com
  188. X  UUCP:     {hplabs,uunet,apple}!oracle!markl
  189. X
  190. XI work on the mail reader in my very limited spare time, so it may
  191. Xtake a while for enhancements to be incorporated.  Bug fix requests
  192. Xwill be dealt with in a more timely fashion.
  193. X
  194. XHappy Hacking,
  195. Xmarkl
  196. X
  197. X----------
  198. XMark L. Lambert
  199. XArchitecture Group, Network Products Division
  200. XOracle Corporation
  201. X
  202. XInternet: markl%oracle.com@apple.com 
  203. X      markl@oracle.com (if your mailer groks MX records)
  204. XUUCP:     ...{hplabs,apple,uunet}!oracle!markl
  205. XUSMail:   Oracle Corporation, 20 Davis Dr, Belmont CA 94002
  206. XAT&T:     (415) 358-3400
  207. X
  208. X"The parts falling off this car are of the finest British quality..."
  209. X
  210. ________This_Is_The_END________
  211. if test `wc -c < README` -ne 6611; then
  212.     echo 'shar: README was damaged during transit (should have been 6611 bytes)'
  213. fi
  214. fi        ; : end of overwriting check
  215. echo 'x - mailhelpaa'
  216. if test -f mailhelpaa; then echo 'shar: not overwriting mailhelpaa'; else
  217. sed 's/^X//' << '________This_Is_The_END________' > mailhelpaa
  218. X          How to Use the Pcmail Mail Reader
  219. X
  220. X               Version 4.0
  221. X
  222. X0. READ THIS FIRST
  223. X
  224. X GNU-EMACS PCMAIL mail reader
  225. X
  226. X Written by Mark L. Lambert
  227. X Architecture Group, Network Products Division
  228. X Oracle Corporation
  229. X 20 Davis Dr,
  230. X Belmont CA, 94002
  231. X
  232. X internet: markl@oracle.com or markl%oracle.com@apple.com
  233. X UUCP:     {hplabs,uunet,apple}!oracle!markl
  234. X
  235. XCopyright (C) 1989 Mark L. Lambert
  236. X
  237. XThis file is not officially part of GNU Emacs, but is being donated to
  238. Xthe Free Software Foundation.  As such, it is subject to the standard
  239. XGNU-Emacs General Public License, referred to below.
  240. X
  241. XGNU Emacs is distributed in the hope that it will be useful, but
  242. XWITHOUT ANY WARRANTY.  No author or distributor accepts responsibility
  243. Xto anyone for the consequences of using it or for whether it serves
  244. Xany particular purpose or works at all, unless he says so in writing.
  245. XRefer to the GNU Emacs General Public License for full details.
  246. X
  247. XEveryone is granted permission to copy, modify and redistribute GNU
  248. XEmacs, but only under the conditions described in the GNU Emacs
  249. XGeneral Public License.  A copy of this license is supposed to have
  250. Xbeen given to you along with GNU Emacs so you can know your rights and
  251. Xresponsibilities.  It should be in a file named COPYING.  Among other
  252. Xthings, the copyright notice and this notice must be preserved on all
  253. Xcopies.
  254. X
  255. X
  256. X1. Introduction
  257. X
  258. X
  259. XPcmail is an electronic mail reader originally designed for use as a
  260. Xclient of the Pcmail distributed mail repository developed at M.I.T.
  261. XThe mail reader has been separated from the rest of the distributed
  262. Xmail system, so it can run standalone like RMAIL, VM, or MH.
  263. X
  264. XThe mail reader manages electronic messages.  It does not transmit
  265. Xmessages, although it provides commands to compose messages for
  266. Xtransmission.  It also does not deliver mail.  Instead, it assumes
  267. Xthat the operating system provides these two capabilities.  First, the
  268. Xoperating system must be able to transmit electronic messages given a
  269. Xmessage body and message header.  Second, the operating system must be
  270. Xable to receive electronic messages and store them in a well-known
  271. X"mail drop" that is accessible to the mail reader.
  272. X
  273. XIn addition to supporting the "standard" features provided in mailer
  274. Xreaders such as GNU-Emacs RMAIL, Pcmail also supports the following
  275. Xfeatures:
  276. X
  277. X  multiple folders:
  278. X
  279. X    Users can have any number of folders in the mail reader.
  280. X    Creation, deletion, and renaming of folders is supported, as is
  281. X    copying of messages between folders.  Folders can be bound to a
  282. X    number of different mail drops, so that opening a folder
  283. X    automatically retrieves mail from these mail drops.  Each folder
  284. X    can have its own message summary; all folders can be manipulated
  285. X    either directly or from the folder list buffer, which displays a
  286. X    list of all folders, together with their message counts.
  287. X
  288. X  user-defined mail drop formats:
  289. X
  290. X    The mail reader defines a number of mail import formats: babyl,
  291. X    Unix, MH, VMS, and NNTP.  Data in any of these formats can be
  292. X    incorporated into any folder with a simple load command.  In
  293. X    addition, import functions can be bound to folders so that
  294. X    whenever the folder is opened, mail in the particular format
  295. X    understood by the bound import function is retrieved and stored in
  296. X    the folder.   
  297. X
  298. X    Of particular interest is the NNTP mail drop format and import
  299. X    function, which when run via a load command retrieves new netnews
  300. X    messages into a folder from a newsgroup with the same name as the
  301. X    folder.  This allows netnews to be treated identically to normal
  302. X    electronic mail. 
  303. X
  304. X    Also of interest is the VMS mail drop format and import function,
  305. X    which allows VMS users to read their mail from within GNU-Emacs
  306. X    rather than the standard VAXMAIL mail reader.
  307. X
  308. X    Users can define their own import functions for custom mail drop
  309. X    formats, making it a fairly simple exercise to import from any
  310. X    other mail format into the mail reader's Babyl format.
  311. X
  312. X  automatic user-defined mail categorization:
  313. X
  314. X    The mail reader allows definition of a "pigeonhole hook", which is
  315. X    automatically applied to all new messages after they are stored in
  316. X    a folder.  The function can scan message text for keywords,
  317. X    perhaps automatically deleting certain messages, marking their
  318. X    priorities, auto-expiring them, or copying them to other folders.
  319. X
  320. X  extensive message subsetting:
  321. X
  322. X    The mail reader also implements folder filters, functions which,
  323. X    when applied to a folder, filter its messages, restricting
  324. X    viewable messages to those which pass through the filter.  Filters
  325. X    exist to select messages by attribute, address, string, date
  326. X    range, numeric range, etc.  User-defined message filters are also
  327. X    supported.  Messages can be automatically filtered upon opening a
  328. X    folder, so that by default, for example, only today's messages are
  329. X    displayed when a folder is opened.
  330. X
  331. X  folder sorting:
  332. X
  333. X    Folders can be grouped by date, priority, sender, or recipient, either
  334. X    explicitly, or automatically on open.  User-defined sort keys are
  335. X    also supported.
  336. X
  337. X  extended summary mode:
  338. X
  339. X    Every Folder Mode command is also supported in Summary
  340. X    Mode.  Each folder has its own summary.  When in a summary, any
  341. X    command that changes the number or order of messages in the
  342. X    summary's owning folder also automatically resummarizes the
  343. X    folder.  The reverse (resummarizing a folder when in that folder
  344. X    and the number or order of messages in the folder changes) is
  345. X    supported as well.
  346. X
  347. X
  348. X  message auto-expiration:
  349. X
  350. X    Messages can be set to auto-expire at a certain date.  When a
  351. X    folder is opened, all messages set to expire before that date are
  352. X    applied to a user-definable expiration hook (which by default
  353. X    deletes the expired message).
  354. X
  355. X  user-definable date, folder mode-line, and summary line formats:
  356. X
  357. X    Users can define their own summary format, folder mode-line, and
  358. X    date formats using printf-like format strings.
  359. X
  360. X  user-definable "interesting" criteria:
  361. X
  362. X    Users can define a hook applied to messages to determine whether
  363. X    or not they are "interesting" (by default, deleted messages are
  364. X    not interesting).  Most movement commands skip over uninteresting
  365. X    messages. 
  366. X
  367. X  supercite support:
  368. X
  369. X    The supercite package is supported via its mail-yank-hooks capability. 
  370. X
  371. X  RMAIL compatibility:
  372. X
  373. X    Pcmail's command set is compatible with RMAIL's, although more
  374. X    extensive.
  375. X
  376. X
  377. X
  378. X2. Concepts
  379. X
  380. X2.1 Mail Drops and Import Functions
  381. X
  382. XA mail drop is a temporary storage area that receives mail in a
  383. Xparticular format from a delivery process and holds it before it is
  384. Xtransferred into the mail reader's permanent storage area.  Each
  385. Xoperating system has its own mail drop semantics.  On VMS, a user's
  386. Xmail drop is a mail folder in MAIL.MAI named "newmail".  Incoming mail
  387. Xis placed here by the VMS MAIL server before being transferred to the
  388. X"mail" folder by the VMS mail reader (or before begin extracted by
  389. XPcmail into a file and transferred into a folder).  On some UNIX
  390. Xsystems, each user has a mail drop /usr/spool/mail/<user>, where the
  391. XSendmail mail delivery program places incoming messages.  Finally, the
  392. Xmail reader defines several special mail drops, discussed later.  Each
  393. Xmail drop is loaded by an import function, which understands the mail
  394. Xdrop format and is able to convert messages from that format to Babyl
  395. Xformat and place the converted messages in a folder.
  396. X
  397. X
  398. X2.2 Folders
  399. X
  400. XThe mail reader stores messages in folders.  They are implemented as
  401. Xoperating system files underneath a mail directory.  Folder files
  402. Xserve as permanent message storage facilities, and contain messages
  403. Xand additional control information used by the mail reader.  The
  404. Xnumber of messages that can be stored in a folder is limited only by
  405. Xthe underlying operating system's file system.  Messages are placed in
  406. Xfolders in one of two ways.  Each folder has zero or more import
  407. Xfunctions attached to it.  Mail in the mail drops handled by the
  408. Ximport functions is automatically transferred to the folder when the
  409. Xfolder is opened.  Messages can also be copied from one folder to
  410. Xanother; they therefore categorize mail: junk mail can be copied to a
  411. Xfolder called JUNK, useful mail to a folder called USEFUL.  Although
  412. Xthe mail reader can support any number of folders, it is initialized
  413. Xwith only one.  This is the "primary folder" and has the same name as
  414. Xthe owner's system login name.  The primary folder comes attached to a
  415. Xsystem-dependent mail drop and import function, so opening the primary
  416. Xfolder will automatically retrieve any new mail and store it in the
  417. Xfolder.  Subsequent folders can be created in the mail reader using
  418. Xappropriate commands.
  419. X
  420. X
  421. X2.3 Messages
  422. X
  423. XMail messages consist of a header and a text body, both of arbitrary
  424. Xlength.  The header in turn consists of header fields ("to:", "from:",
  425. X"received:", etc).  Collections of messages are stored in folders.
  426. XEach message has two identifying numbers.  The first identifies the
  427. Xmessage's permanent position in the folder and is that message's
  428. X"absolute number".  The second identifies the message's position in
  429. Xthe current message subset (see following section on Filters and
  430. XSubsets).  The first number is typically used internally; users intent
  431. Xon customizing their environments will use absolute message numbers
  432. Xwhen calling internal mail reader functions from customization hooks.
  433. XThe second type of identifying number is used externally by the user
  434. Xwhen identifying messages to various mail reader commands.
  435. X
  436. X
  437. X2.4 Attributes
  438. X
  439. XAttributes are text tags that can be attached to individual messages.
  440. XFor example, the "deleted" attribute is attached to messages that have
  441. Xbeen deleted but not yet permanently expunged from a folder.  The
  442. X"answered" attribute is attached to all messages which have been
  443. Xreplied to.  The mail reader pre-defines these as well as a number of
  444. Xother attributes.  The mail reader also permits any number of
  445. Xuser-defined attributes; this allows users to categorize messages by
  446. Xattribute within a folder.  See the pcmail-change-message-attr ("y")
  447. Xcommand for details.
  448. X
  449. X
  450. X2.5 Filters and Subsets
  451. X
  452. XFilters allow categorization and viewing of groups of messages within
  453. Xa folder.  A filter is a predicate function which, when given a
  454. Xmessage number and optional extra information either passes or rejects
  455. Xthe message.  After filtering, the mail reader allows access to only
  456. Xthose messages passed by the filter, until a new filter is selected.
  457. XThese messages comprise a "subset".  There are a number of mail reader
  458. Xcommands that operate on message subsets.  They can set a particular
  459. Xattribute on all messages in a subset, or copy all messages in a
  460. Xsubset to another folder, or send all messages in a subset to a
  461. Xprinter.  Another mail reader command expands the current message
  462. Xsubset to include all messages in the folder, allowing access to all
  463. Xmessages, rather than simply those in the message subset.
  464. X
  465. XThe mail reader predefines a number of filters, discussed in detail
  466. Xlater: for example, the "date range" filter creates a subset of those
  467. Xmessages with posting dates between two specified dates.  The
  468. X"attribute" filter creates a subset consisting of all messages that
  469. Xhave a particular attribute.  The "interesting" filter creates a
  470. Xsubset consisting of messages considered interesting by the mail
  471. Xreader.  The "all" filter creates a subset consisting of all messages
  472. Xin the folder, and is used by default to create the initial message
  473. Xsubset at mail reader startup.  
  474. X
  475. XThe mail reader also supports user-defined filters.  These filters are
  476. Xtypically defined in pcmail-hook with the pcmail-define-filter
  477. Xfunction.  The user supplies a filter name, filter expression and an
  478. Xoptional argument input expression to pcmail-define-filter.  When
  479. Xfiltering, the input function (if present and non-NIL) is run through
  480. Xeval to set up any arguments needed by the filter.  Then each message
  481. Xin the folder is applied to the filter expression.  The variable
  482. Xpcmail-current-tested-message is bound to the absolute number of the
  483. Xmessage being tested before the function is called.  This allows the
  484. Xfunction to access the current absolute message number without
  485. Xrequiring that it do so.  The filter expression is run through eval
  486. Xbecause the expression arguments must be evaluated at filter time and
  487. Xcan change on successive applications of the filter.  For each message
  488. Xrun through the filter, if the filter expression evaluates non-NIL,
  489. Xthe message is included in the resulting subset.  The following
  490. Xexample shows how to use pcmail-define-filter:
  491. X
  492. X    (pcmail-define-filter "frob-message"
  493. X        '(my-filter-function "foo")
  494. X        '(setq my-default-arg (my-input-function)))
  495. X
  496. XThe function my-input-function is called before any messages are
  497. Xtested; it sets a global variable my-default-arg, which can be used
  498. Xby my-filter-function.
  499. X
  500. XRemember that when filtering, the current message's absolute number is
  501. Xalways bound to pcmail-current-tested-message; my-filter-function can
  502. Xuse this value when performing its processing.
  503. X
  504. X
  505. X2.6 Hooks
  506. X
  507. XA hook is an Emacs-Lisp expression which is evaluated in conjunction
  508. Xwith performing a task.  Hooks are typically used as a means for users
  509. Xto customize their environment.  For instance, "pcmail-hook" is an
  510. XEmacs-Lisp expression evaluated upon entry into the mail reader.  It
  511. Xis used to customize a mail reader instance by setting various
  512. Xconfiguration variables.  "pcmail-pigeonhole-hook" is an Emacs-Lisp
  513. Xexpression applied to every new message after it is transferred from a
  514. Xmail drop to a folder.  It allows manipulation of a message before it
  515. Xis displayed (for example, the weeding out of junk mail, or automatic
  516. Xmarking of some messages as high priority).  Other hooks are discussed
  517. Xin detail later.
  518. X
  519. X
  520. X2.7 Prefix Arguments
  521. X
  522. XMany mail reader commands behave differently if prefaced with a prefix
  523. Xargument.  Standard GNU-Emacs prefix arguments are entered by typing
  524. XControl-U<number> or ESC<number> before a command.  The mail reader
  525. Xaccepts prefix numbers without the Control-U or ESC.
  526. X
  527. XSome commands interpret a numeric prefix argument; for instance the
  528. Xpcmail-goto-message ("j") command, when given a numeric prefix argument N,
  529. Xjumps to the Nth message in the message subset.  Other commands simply
  530. Xnote the existence of a prefix argument and behave differently.
  531. X
  532. X
  533. X
  534. X3. Installing and Customizing the Mail Reader
  535. X
  536. X3.1 Basic Installation
  537. X
  538. XThe mail reader is installed in two parts.  First, the Emacs-Lisp code
  539. Xmust be installed.  All Emacs-Lisp (".el") files must be copied to a
  540. Xdirectory where the GNU-Emacs load commands will find the files.
  541. XThose files should then be byte-compiled.  The Emacs-Lisp code must be
  542. Xeither manually loaded or autoloaded before the mail reader can be
  543. Xused.  Autoloading of the mail reader is performed automatically if
  544. Xthe local GNU-Emacs's loaddefs.el file is set up to do so.  If
  545. Xloaddefs.el has not been configured to autoload the mail reader, the
  546. Xautoload request can be performed in a GNU-Emacs initialization file
  547. X(e.g. ".emacs") using the Emacs-Lisp autoload form:
  548. X
  549. X    (autoload 'pcmail "pcmail" "pcmail mail reader" t)
  550. X
  551. XOnce the mail reader software has been loaded, the mail reader is
  552. Xentered by typing "ESC x Pcmail".  If the GNU-Emacs initialization
  553. Xfile has a key binding expression that binds the Emacs-Lisp function
  554. XPcmail to a keystroke sequence, for example:
  555. X
  556. X    (global-set-key "\C-xp" 'pcmail)
  557. X
  558. Xthen the mail reader can be entered by typing the keystroke sequence
  559. X"control-X P".
  560. X
  561. XThe following installation procedures are only necessary if you are
  562. X(1) running the mail reader on a VMS system, (2) you wish to use the
  563. XNNTP mail-drop capability, or (3) you wish to use the MH import
  564. Xcapability.  If you do not need a capability, you can ignore the
  565. Xappropriate installation information.
  566. X
  567. X3.2 Installing VMS DCL Scripts
  568. X
  569. XIn order to use the mail reader on VMS, you must install the scripts
  570. X"vms-movemail.com" and "vms-movemail.com" in the GNU-Emacs "etc"
  571. Xdirectory.  
  572. X
  573. XA note about the VMS mail drop importer: the vms-movemail.com DCL
  574. Xscript which Pcmail calls to perform the mail transfer when new mail
  575. Xarrives works perfectly well on our local VMS 5.1.  I nonetheless
  576. Xstrongly suggest testing it on your system before relying on it, since
  577. X(1) it does muck with your MAIL.MAI file, (2) I don't know VMS all
  578. Xthat well (nor do I have a desire to), and (3) I don't want to be
  579. Xresponsible for people trashing their mail.
  580. X
  581. X3.3 Installing nntp_slave
  582. X
  583. XThe nntp_slave program is a simple (very simple) NNTP client that
  584. Xtakes a newsgroup name and places messages from that newsgroup into a
  585. Xfile.  It uses a control file to keep track of which messages it has
  586. Xretrieved; if the control file doesn't exist, it retrieves the latest
  587. X20 messages from the specified newsgroup.
  588. X
  589. XInstallation of the program is simple.  Compile nntp.c and
  590. Xnntp_slave.c, then link both together into an executable called
  591. X"nntp_slave":
  592. X
  593. X    cc -o nntp_slave nntp_slave.c nntp.c
  594. X
  595. XPlace the executable in the GNU-Emacs "etc" directory.
  596. X
  597. X3.4 Installing mh-to-pcmail-export
  598. X
  599. XThe mh-to-pcmail-export program is a simple shell script which takes
  600. Xan MH folder name, goes to that directory, and accumulates all message
  601. Xfiles into a single file with separator text between messages.  It is
  602. Xused by the mail reader when importing an MH folder into a Pcmail
  603. Xfolder. 
  604. X
  605. XInstallation consists of moving the shell script into the GNU-Emacs
  606. X"etc" directory and changing the file's mode so that it is executable:
  607. X
  608. X    chmod +x mh-to-pcmail-export
  609. X
  610. X
  611. X3.5 Customizing
  612. X
  613. XThe mail reader is extensively customizable; a list of configuration
  614. Xvariables and their meanings follows.  No customization is required
  615. Xsince the mail reader provides a reasonable set of defaults for its
  616. Xoperations.  To change the mail reader's default behaviour, make the
  617. Xappropriate configuration variable settings within an Emacs-Lisp
  618. Xexpression named "pcmail-hook".  If pcmail-hook exists, the mail
  619. Xreader evaluates it on startup unless the startup command was executed
  620. Xwith a prefix argument.  The hook should be defined in the GNU-Emacs
  621. Xinitialization file.  For example:
  622. X
  623. X        (setq pcmail-hook '(lambda ()
  624. X             (setq pcmail-delete-on-print t)
  625. X             (setq pcmail-delete-on-copy t)
  626. X             (setq pcmail-delete-on-archive t)
  627. X             (setq pcmail-highlight-forwarded-message t)
  628. X             (setq pcmail-uninteresting-fields-list
  629. X               (cons "in-reply-to"
  630. X                 pcmail-uninteresting-fields-list))))
  631. X
  632. XThe following configuration variables, together with their defaults,
  633. Xare currently available.  Variables can be set with the Emacs-Lisp "setq"
  634. Xform:
  635. X
  636. X    (setq foo <foo's value>)
  637. X
  638. Xpcmail-date-format
  639. X
  640. XThe format string used to format dates is user-configurable.  The
  641. Xformat string is similar to a C printf or Emacs-Lisp "format" string,
  642. Xwith embedded format directives and associated arguments controlling
  643. Xthe format of an output string.  As with printf and the Emacs-Lisp
  644. Xfunction "format", any format directive character can be prefaced by a
  645. Xfield width number.  A negative number denotes left-justification, a
  646. Xpositive number right justification.  Numeric format arguments are
  647. Xinserted into the output string with leading zeroes if the directive
  648. Xlength specifier is also prefaced with a leading zero.  The following
  649. Xformat directives are recognized:
  650. X
  651. X    %d:  replace with the day of the month
  652. X    %n:  replace with the number of the month
  653. X    %m:  replace with the first three letters of the month
  654. X    %M:  replace with the full name of the month
  655. X    %y:  replace with the last two digits of the year
  656. X    %Y:  replace with the full year
  657. X
  658. XDefault value of pcmail-date-format is: "%d-%m-%y"
  659. X
  660. Xpcmail-default-filter-name
  661. X
  662. XWhen the mail reader starts up, all messages in the primary folder are
  663. Xfiltered through a default filter.  That filter is named by
  664. Xpcmail-default-filter-name and defaults to "all", the pre-defined
  665. Xfilter that passes all messages.  Thus, the mail reader's behaviour on
  666. Xstartup is to allow access to all messages in the folder.  Note that
  667. Xif the default filter name is changed, access to all messages can
  668. Xalways be gained with the pcmail-expand-subset ("x") command.
  669. X
  670. Xpcmail-delete-on-archive
  671. X
  672. XIf this variable is non-NIL, messages that are archived to a file will
  673. Xhave their "deleted" attribute set after archiving.  Default value is
  674. XNIL.
  675. X
  676. Xpcmail-delete-on-copy
  677. X
  678. XIf this variable is non-NIL, messages that are copied to another
  679. Xfolder will have their "deleted" attribute set in the source folder
  680. Xafter copying.  Default value is NIL.
  681. X
  682. Xpcmail-delete-on-print
  683. X
  684. XIf this variable is non-NIL, messages that are printed will have their
  685. X"deleted" attribute set after printing.  Default value is NIL.
  686. X
  687. Xpcmail-expiration-hook
  688. X
  689. XAn Emacs-Lisp function (similar in form to the sample hook shown
  690. Xabove) that takes as an argument an absolute message number and is
  691. Xapplied to all messages with the "timely" attribute when the current
  692. Xdate is later than the date in the message header's "expires:" field.
  693. XThe default hook takes a message with absolute number N and sets N's
  694. X"deleted" attribute.
  695. X
  696. Xpcmail-expunge-on-save
  697. X
  698. XIf this variable is non-NIL, a folder is always expunged before being
  699. Xsaved when the pcmail-save-folder command is issued.  Default value is
  700. XT.
  701. X
  702. Xpcmail-folder-list-mode-hook
  703. X
  704. XAn Emacs-Lisp hook expression that is executed after putting a buffer
  705. Xinto Folder List Mode.  This allows users to customize commands
  706. Xavailable in Folder List Mode.
  707. X
  708. Xpcmail-folder-mode-hook
  709. X
  710. XAn Emacs-Lisp hook expression that is executed after putting a buffer
  711. Xinto Folder Mode.  This allows users to customize commands available
  712. Xin Folder Mode.
  713. X
  714. Xpcmail-folder-mode-line-format
  715. X
  716. XThe format string used to format a folder's mode line.  Works as
  717. Xpcmail-date-format above.  The following format directives are
  718. Xrecognized:
  719. X
  720. X    %a:  replace with the current message's attribute list, or 
  721. X         "[no attributes]", if the message has no attributes
  722. X    %c:  replace with the current message's character count
  723. X    %e:  replace with the word "Editing" if the current message is
  724. X         being edited.
  725. X    %E:  if the current message is timely, replace with its expiration date
  726. X    %f:  replace with the current folder name
  727. X    %l:  replace with the current message's line count
  728. X    %n:  if the current subset does not comprise the entire folder, or the
  729. X             current message's number is not the same as its absolute number,
  730. X             replace with the message's absolute number and the total number of
  731. X             messages in the folder in the form "[<curr>/<total>]"
  732. X    %p:  replace with the current message's priority if the priority
  733. X             number is greater than 1.
  734. X    %s:  replace with the current message's number
  735. X    %S:  replace with the number of messages in the current subset
  736. X
  737. XDefault value of pcmail-folder-mode-line-format is:
  738. X
  739. X    "Folder: %-18f (%eMessage %s/%S%n: %a) %p"
  740. X
  741. Xpcmail-highlight-forwarded-message
  742. X
  743. XIf this variable is non-NIL, the words "begin forwarded message" are
  744. Xplaced before a forwarded message and the words "end forwarded
  745. Xmessage" after it.  Default value is NIL.
  746. X
  747. Xpcmail-interesting-hook
  748. X
  749. XAn Emacs-Lisp function that takes as an argument an absolute message
  750. Xnumber N, and determines whether or not message N is interesting.
  751. XUninteresting messages are skipped over by most mail reader message
  752. Xmovement commands.  They are also filtered out when using the
  753. X"interesting" message filter.  Any Emacs-Lisp expression can be used
  754. Xhere; if the expression is NIL, then all message are considered
  755. Xinteresting.  The expression's default value defines deleted messages
  756. Xand messages with priority number 5 and higher as uninteresting.
  757. X
  758. Xpcmail-nntp-host-name
  759. X
  760. XThe name of your local NNTP server.  Only interesting if you are using
  761. XThe nntp-mail-drop or nntp-file-mail-drop mail drop types, in which case it 
  762. Xmust be defined.  Default value is "newshost".
  763. X
  764. Xpcmail-pigeonhole-hook
  765. X
  766. XAn Emacs-Lisp function that takes as an argument an absolute message
  767. Xnumber N.  The function (if defined) is applied to each new message N
  768. Xas it is transferred from a mail drop to a folder.  When the
  769. Xexpression is evaluated, the message has already been appended to the
  770. Xfolder, thus any internal mail reader function that uses an absolute
  771. Xmessage number will work properly.  Note that most of the interesting
  772. Xthings this hook can do require knowledge of mail reader primitives
  773. Xnot described in this manual.  They are of course self-documented
  774. Xinside GNU-Emacs.  Default value is NIL.
  775. X
  776. Xpcmail-printer-name
  777. X
  778. XThe name of the printer that the mail reader sends messages to when
  779. Xthe pcmail-print-message command is issued.  Default value is
  780. Xoperating-system dependent.  On VMS systems, the value is "SYS$PRINT",
  781. Xon UNIX systems, the value is either the environment variable
  782. X"PRINTER", or (if "PRINTER" is not defined) the standard printcap
  783. Xprinter name "lp".
  784. X
  785. Xpcmail-progress-interval
  786. X
  787. XWhen performing time-intensive tasks like message counting or
  788. Xfiltering, progress notification is displayed every
  789. Xpcmail-progress-interval mail messages, with the total number of mail
  790. Xmessages processed displayed upon completion of the task.  Default
  791. Xvalue is 10.
  792. X
  793. Xpcmail-resummarize-folder-on-change
  794. X
  795. XIf non-NIL, resummarize a folder that has an existing summary every
  796. Xtime the folder changes.  Changes are defined as a change in the
  797. Xnumber of messages in the folder's current subset or a change in their
  798. Xorder.  Default value is NIL.
  799. X
  800. Xpcmail-save-on-quit
  801. X
  802. XIf this variable is non-NIL, all open folders are saved before
  803. Xexiting the mail reader via the pcmail-quit command.  Default value is
  804. XT.
  805. X
  806. Xpcmail-summary-format
  807. X
  808. XThe format a message summary line takes (when summarizing a folder
  809. Xwith the pcmail-summarize-folder or pcmail-folder-summarize-folder
  810. Xcommands) is user-configurable.  The variable controlling the format
  811. Xis pcmail-summary-format.  The format string works as
  812. Xpcmail-date-format and pcmail-folder-mode-line-format defined above.
  813. XThe following directives are recognized:
  814. X
  815. X    %b:    replace with the contents of the message's Bcc: field
  816. X    %c:    replace with the contents of the message's Cc: field
  817. X    %C:    replace with the message's character count
  818. X    %d:    replace with the contents of the message's Date: field
  819. X    %f:    replace with the contents of the message's From: field
  820. X    %l:    replace with the message's line count
  821. X    %m:    replace with the contents of the message's Message-Id: field
  822. X    %s:    replace with the contents of the message's Subject: field
  823. X    %t:    replace with the contents of the message's To: field
  824. X
  825. XNote that once a message has been summarized, changing the format will
  826. Xnot affect that message's summary line appearance.  Format changes
  827. Xonly affect messages summarized after the change.  Default value of
  828. Xpcmail-summary-format is: "%d %25f %s".
  829. X
  830. Xpcmail-summary-mode-hook
  831. X
  832. XAn Emacs-Lisp hook expression that is executed after putting a buffer
  833. Xinto Summary Mode.  This allows users to customize commands available
  834. Xin Summary Mode.
  835. X
  836. Xpcmail-uninteresting-fields-list
  837. X
  838. XAny message field on this list is by default removed from the message
  839. Xheader when the message is displayed.  The
  840. Xpcmail-toggle-message-header ("t") command displays such pruned header
  841. Xfields anyway.  Default uninteresting fields are:
  842. X
  843. X    via:         mail-from:    origin:            status:
  844. X    received:    message-id:    resent-message-id:      summary-line:
  845. X    return-path:
  846. X
  847. XAdding uninteresting fields is done with an Emacs-Lisp expression like the
  848. Xfollowing:
  849. X
  850. X     (setq pcmail-uninteresting-fields-list
  851. X       (append '("in-reply-to" "path" "lines" "keywords"
  852. X             "references" "summary" "xref")
  853. X         pcmail-uninteresting-fields-list))))
  854. X
  855. X
  856. Xpcmail-wastebasket-folder
  857. X
  858. XThe name of the wastebasket folder.  The wastebasket is a useful place
  859. Xto put unwanted messages that for some reason cannot or should not be
  860. Ximmediately expunged from the system.  The wastebasket is presented
  861. Xprimarily for use in user-defined pigeonhole hooks and is only used by
  862. Xthe mail reader in conjunction with the pcmail-wastebasket-on-expunge
  863. Xconfiguration variable.  Default value is "wastebasket".
  864. X
  865. Xpcmail-wastebasket-on-expunge
  866. X
  867. XIf this variable is non-NIL, the mail reader will copy all of a
  868. Xfolder's deleted messages to pcmail-wastebasket-folder upon expunge of
  869. Xthe folder.  This can be a time-consuming operation.  Default value is
  870. XNIL.
  871. X
  872. Xpcmail-yank-message-on-reply
  873. X
  874. XIf this variable is non-NIL, the pcmail-answer-message command will
  875. Xautomatically insert a copy of the replied-to message in the message
  876. Xreply.  Default value is NIL.
  877. X
  878. Xpcmail-yank-prefix 
  879. X
  880. XIf this variable is a string, any message inserted into the message
  881. Xcomposition buffer (i.e. by pcmail-yank-message-on-reply, or
  882. Xpcmail-insert-current-message) will have that string placed at the
  883. Xbeginning of each non-blank line.  Default value is NIL.
  884. X
  885. X
  886. X4. Using the Mail Reader
  887. X
  888. XThe following sections describe how to enter the mail reader and
  889. Ximport mail from other mail systems.
  890. X
  891. X4.1
  892. X
  893. XEnter the mail reader by executing the mail reader startup function
  894. X"pcmail".  If the function has been bound to a keystroke sequence,
  895. Xtyping the keystrokes will enter the mail reader.  If not, typing:
  896. X
  897. X    ESC x pcmail 
  898. X
  899. Xwill enter the mail reader.
  900. X
  901. XAt this point several things happen.  The first time the mail reader
  902. Xis used, it asks whether it should create a mail directory.  The name
  903. Xof this directory is operating-system dependent, and is defined in the
  904. Xvariable pcmail-directory.  All folders are stored as files in this
  905. Xdirectory; also stored in the directory are operating-system dependent
  906. Xtemporary files, as well as the folder list file, which contains
  907. Xinformation on each folder created by the mail reader.
  908. X
  909. XOnce the mail directory has been created, the mail reader will ask to
  910. Xcreate a primary folder with the same name as your system login name.
  911. XAttached to the folder are one or more mail drops corresponding to the
  912. Xoperating system mail server's mail drops.
  913. X
  914. XOnce the mail directory and primary folder have been created,
  915. X"standard" mail reader processing begins.  Unless a prefix argument
  916. Xwas given the mail reader entry command, the Emacs-Lisp hook
  917. Xpcmail-hook is evaluated, performing any customizing.  The primary
  918. Xfolder is opened and placed in Folder Mode.  The hook pcmail-mode-hook
  919. Xis evaluated, allowing users to set up their own mode-specific key
  920. Xbindings.  Any new mail is transferred to the folder from its attached
  921. Xmail drop(s).  If there are any unseen messages in the folder, the
  922. Xfirst unseen message is displayed, otherwise the last interesting
  923. Xmessage in the folder is displayed.  "Interesting" messages default to
  924. Xmessages which have not been deleted.  The definition of "interesting"
  925. Xcan be changed by modifying the Emacs-Lisp hook expression
  926. Xpcmail-interesting-hook as per the information in the section
  927. Xdescribing configuration variables.
  928. X
  929. XAt this point all Folder Mode commands are available.  Standard
  930. XGNU-Emacs commands are also available; bear in mind that many of the
  931. Xkeystrokes which execute GNU-Emacs commands may have been superseded
  932. Xby Folder Mode commands.  Although folders are ordinary text files,
  933. Xthey cannot be modified while they are in Folder Mode.  All GNU-Emacs
  934. Xbuffer-modification commands are disabled in Folder Mode.
  935. X
  936. X
  937. X4.2 Getting Help
  938. X
  939. XGNU-Emacs is a self-documenting editor; information on any part of the
  940. Xeditor (including the mail reader) is available via the GNU-Emacs help
  941. Xfacility.  Typing "?" in any mail reader mode will display a list of
  942. Xcommands available in that mode, together with the keystrokes that
  943. Xexecute them.  Executing the GNU-Emacs Help command (default
  944. XControl-h) followed by "k" or "f", will give detailed documentation on
  945. Xcommands by keystroke or function name, respectively.  Executing the
  946. XHelp command followed by "v" gives detailed documentation on
  947. Xconfiguration variables.
  948. X
  949. X
  950. X4.3 Input Completion
  951. X
  952. XWhen the mail reader command requires input from the minibuffer, input
  953. Xcompletion is permitted whenever possible.  If the command requires as
  954. Xinput a member of a set of possible values, you need input only enough
  955. Xcharacters to uniquely identify the value.  Hitting TAB or SPC then
  956. Xautomatically completes the value.  If the value is not unique, TAB or
  957. XSPC will present a pop-up window with a list of valid values.  In the
  958. Xfollowing command documentation, any command which permits input
  959. Xcompletion is so noted.
  960. X
  961. X
  962. X4.4 Importing Existing Mail State
  963. X
  964. XFew users will begin using Pcmail from scratch, with no prior mail
  965. Xstate.  Pcmail understands a number of mail drop formats, and defines
  966. Ximport functions which allow importing of messages from these mail
  967. Xdrops to Pcmail folders.  These import functions can be permanently
  968. Xbound to a folder when the folder is first creates; this causes the
  969. Xmail drop to be scanned for new mail whenever the folder is opened.
  970. X
  971. XImporting mail is easy, provided the mail to be imported is in one of
  972. Xfour common formats: VMS Mail Extract files, MH folders, Babyl files,
  973. Xor ordinary Berkeley mail files.  If the existing mail is not in any of
  974. Xthese formats, a custom import function must be built for the new mail
  975. Xdrop format.  Although this is not difficult, it is not discussed in
  976. Xthis document since it is fairly specialized reading, and a number of
  977. Xexamples in the mail reader will show how to write an import function.
  978. X
  979. XFirst, create the folder which will hold the imported mail.  If you
  980. Xwish the folder to have new mail from a mail drop automatically loaded
  981. Xwhenever the folder is opened, use a prefix argument with the folder
  982. Xcreate command.  The create command will then request the name of a
  983. Xmail drop format, which it will bind to the folder.
  984. X
  985. XNext, use the pcmail-load-mail-drop ("l") command.  At the minibuffer
  986. Xprompt, input the name of the mail drop format.  Completion on input
  987. Xis permitted.  Input any mail drop-specific arguments as required.
  988. X
  989. XThe mail reader will then load the mail into the current folder.  Note
  990. Xthat some import functions are destructive; they delete the mail drop
  991. Xafter loading its mail into the folder.  Most of the time this is
  992. Xdesirable behaviour, since mail drops are by definition temporary
  993. Xstorage areas.  If a destructive import is being performed on mail
  994. Xwhich should not be deleted for some reason, back up the mail drop
  995. Xbefore importing.  The pcmail-load-mail-drop command documentation
  996. Xdescribes in detail which import functions are destructive and which
  997. Xare not.
  998. X
  999. X4.5 Leaving the mail reader
  1000. X
  1001. XThere are two ways to exit Pcmail.  First, there is the pcmail-quit
  1002. Xcommand, bound to the "q" key in all mail reader modes.  This exits
  1003. XPcmail in an orderly fashion.  First it by default saves all open
  1004. Xfolders.  The save process in turn by default expunges all deleted
  1005. Xmessages in the saved folders.  Finally, the Emacs-Lisp hook
  1006. Xexpression pcmail-exit-hook is evaluated, and the command prompts for
  1007. Xa new GNU-Emacs buffer to enter.
  1008. X
  1009. XSince the mail reader is implemented as a major editing mode applied
  1010. Xto files with a particular format, switching to a buffer not in
  1011. XFolder Mode effectively also exits the mail reader.
  1012. X
  1013. X
  1014. X
  1015. X5. Mail Reader Commands
  1016. X
  1017. XFollowing are a list of mail reader commands, grouped by mode.  Pcmail
  1018. Xhas three modes.  Folder List Mode implements folder creation,
  1019. Xdeletion, and manipulation in the Folder List buffer.  Summary Mode
  1020. Ximplements manipulation of messages while in a summary list of
  1021. Xmessages.  Finally, Folder Mode implements manipulation of folders and
  1022. Xmessages while in a folder.
  1023. X
  1024. XCommands are listed alphabetically by keystroke.  The standard
  1025. XGNU-Emacs key-naming conventions are used, thus ESC x notes escape- or
  1026. Xmeta-X, C-d denotes control-D, and ESC C-x denotes escape-control- or
  1027. Xcontrol-meta-X.  Function names are also included for reference.  Some
  1028. Xfunctions are not bound to any keystrokes.  They can be executed by
  1029. Xtyping ESC x <function-name>.
  1030. X
  1031. X
  1032. X5.1 Folder Mode Commands
  1033. X
  1034. XFolder buffers opened by the mail reader are always placed in Folder
  1035. XMode.  A folder buffer contains all the messages in that folder,
  1036. Xhowever not all of the messages are always immediately accessible.
  1037. XThe collection of messages accessible at any one time is called the
  1038. X"message subset".  The message subset can be modified using various
  1039. Xmail reader commands; it is set by default at startup to include all
  1040. Xmessages.  This can be altered by changing the variable
  1041. Xpcmail-default-filter-name to any valid folder filter.  The startup
  1042. Xsubset will then consist of those messages passed by the new filter.
  1043. X
  1044. XEach message in the message subset is given a number, identifying its
  1045. Xposition in the subset.  This number, together with the total number
  1046. Xof messages in the subset and any message attributes, is displayed in
  1047. Xthe mode line.  If the message subset does not contain all messages in
  1048. Xthe folder, or the subset order is different from the actual order,
  1049. Xthen the message's absolute message number and the total number of
  1050. Xmessages in the folder are also displayed in the mode line.
  1051. X
  1052. XThe following list of Folder Mode commands are grouped by class:
  1053. Xmovement, attribute setting, mail composition, message output, folder
  1054. Xmodification, and miscellaneous.
  1055. X
  1056. X
  1057. X5.1.1 Getting help
  1058. X
  1059. X?: describe-mode
  1060. X
  1061. XDisplay a list of available commands and the keystrokes they are bound
  1062. Xto.  Typing The GNU-Emacs Help key, followed by "k" or "f" will
  1063. Xpresent documentation on functions by keystroke or function name,
  1064. Xrespectively. 
  1065. X
  1066. X
  1067. X5.1.2 Movement Commands
  1068. X
  1069. X.: pcmail-beginning-of-message
  1070. X
  1071. XMove to the beginning of the current message.
  1072. X
  1073. XSPC: scroll-up
  1074. X
  1075. XShow the next page of the current message
  1076. X
  1077. XDEL: scroll-down
  1078. X
  1079. XShow the previous page of the current message
  1080. X
  1081. X<: pcmail-goto-message
  1082. X
  1083. XJump to the first message in the message subset.
  1084. X
  1085. X>: pcmail-last-message
  1086. X
  1087. XJump to the last interesting message in the message subset.  For a
  1088. Xdiscussion on what consitutes an interesting message, see the
  1089. Xconfiguration section, variable pcmail-interesting-hook.  With a
  1090. Xprefix argument, jump to the last message in the subset whether or not
  1091. Xit is interesting.
  1092. X
  1093. Xj: pcmail-goto-message
  1094. X
  1095. XWith a prefix argument N, jump to the Nth message in the message subset.
  1096. XWith no prefix argument jump to the first message in the message subset.
  1097. X
  1098. Xn, RET: pcmail-next-message
  1099. X
  1100. XGo to the next interesting message in the message subset.  With a
  1101. Xprefix argument, go to the next message whether or not it is interesting.
  1102. X
  1103. XESC n: pcmail-next-message-of-type
  1104. X
  1105. XRead a folder filter type from the minibuffer.  Input completion
  1106. Xis permitted; input defaults to the last filter name given a filter
  1107. Xcommand.  Go to the next message passed by the filter.  This is
  1108. Xextremely useful in large folders, where for example a user might want
  1109. Xto find the next message from "fred@frobozz".
  1110. X
  1111. Xp: pcmail-previous-message
  1112. X
  1113. XGo to the nearest previous interesting message in the message subset.
  1114. XWith a prefix argument, go to the previous message whether or not it
  1115. Xis interesting.
  1116. X
  1117. XESC p: pcmail-previous-message-of-type
  1118. ________This_Is_The_END________
  1119. if test `wc -c < mailhelpaa` -ne 38628; then
  1120.     echo 'shar: mailhelpaa was damaged during transit (should have been 38628 bytes)'
  1121. fi
  1122. fi        ; : end of overwriting check
  1123. exit 0
  1124.  
  1125.